#ifndef __VISIBLEPARTFLAGS_H__
#define __VISIBLEPARTFLAGS_H__

#include "StringUtils.h"

enum VisiblePartFlags
{
	VisiblePartFlags_HeadFlag = 1,
	VisiblePartFlags_HelmetFlag = 2,
	VisiblePartFlags_ChestFlag = 4,
	VisiblePartFlags_LeftArmFlag = 8,
	VisiblePartFlags_RightArmFlag = 16,
	VisiblePartFlags_LeftLegFlag = 32,
	VisiblePartFlags_RightLegFlag = 64,

	VisiblePartFlags_Default =
								VisiblePartFlags_HeadFlag |
								VisiblePartFlags_HelmetFlag |
								VisiblePartFlags_ChestFlag |
								VisiblePartFlags_LeftArmFlag |
								VisiblePartFlags_RightArmFlag |
								VisiblePartFlags_LeftLegFlag |
								VisiblePartFlags_RightLegFlag,
};

inline VisiblePartFlags ParseVisiblePartFlags (const std::string &str)
{
	if (caseInsensitiveStringCompare(str, "HeadFlag"))
		return VisiblePartFlags_HeadFlag;
	else if (caseInsensitiveStringCompare(str, "HelmetFlag"))
		return VisiblePartFlags_HelmetFlag;
	else if (caseInsensitiveStringCompare(str, "ChestFlag"))
		return VisiblePartFlags_ChestFlag;
	else if (caseInsensitiveStringCompare(str, "LeftArmFlag"))
		return VisiblePartFlags_LeftArmFlag;
	else if (caseInsensitiveStringCompare(str, "RightArmFlag"))
		return VisiblePartFlags_RightArmFlag;
	else if (caseInsensitiveStringCompare(str, "LeftLegFlag"))
		return VisiblePartFlags_LeftLegFlag;
	else if (caseInsensitiveStringCompare(str, "RightLegFlag"))
		return VisiblePartFlags_RightLegFlag;

	throw std::exception();
}

#endif